1 检测网络存在
/*测试是否有网络*/
if (navigator.onLine) {
alert("有网络");
} else {
alert("无网络");
}
/*测试是否有网络触发事件*/
EventUtil.addHandler(window, "online", function () {
alert("Online");
});
EventUtil.addHandler(window, "offline", function () {
alert("Offline");
});
2 数据存储
####(1)获取cookie的封装方法关于cookie的设定,他是同域的。而且它是以键值对形式出现
var CookieUtil = {
get: function (name) {
var cookieName = encodeURIComponent(name) + “=”,
cookieStart = document.cookie.indexOf(cookieName),
cookieValue = null;
if (cookieStart > -1) {
var cookieEnd = document.cookie.indexOf(“;”, cookieStart);
if (cookieEnd == -1) {
cookieEnd = document.cookie.length;
}
cookieValue = decodeURIComponent(document.cookie.substring(cookieStart
+ cookieName.length, cookieEnd));
}
return cookieValue;
},
set: function (name, value, expires, path, domain, secure) {
var cookieText = encodeURIComponent(name) + "=" +
encodeURIComponent(value);
if (expires instanceof Date) {
cookieText += "; expires=" + expires.toGMTString();
}
if (path) {
cookieText += "; path=" + path;
}
if (domain) {
cookieText += "; domain=" + domain;
}
if (secure) {
cookieText += "; secure";
}
document.cookie = cookieText;
},
unset: function (name, path, domain, secure) {
this.set(name, "", new Date(0), path, domain, secure);
}
};
小结
离线 Web 应用和客户端存储数据的能力对未来的 Web 应用越来越重要。浏览器已经能够检测到用
户是否离线,并触发 JavaScript 事件以便应用做出处理。可以指定在应用缓存中保存哪些文件以
便离线时使用。对于应用缓存的状态及变化,也有相应的 JavaScript API 可以调用检测。
本书还讨论了客户端存储的以下几方面内容。
以前,这种存储只能使用 cookie 完成,cookie 是一小块可以客户端设置也可以在服务 器端设置
的信息,每次发起请求时都会传送它 。
在 JavaScript 中通过 document.cookie 可以访问 cookie。
cookie 的限制使其可以存储少量数据,然而对于大量数据效率很低 。
IE 发明了一种叫做用户数据的行为,可以应用到页面的某个元素上,它有以下特点。
一旦应用后,该元素便可以从一个命名数据空间中载入数据,然后可以通过 getAttribute()、
setAttribute()和 removeAttribute()方法访问。
数据必须明确使用 save()方法保存到命名数据空间中,以便能在会话之间持久化数据。
Web Storage 定义了两种用于存储数据的对象:sessionStorage 和 localStorage。前者严格用
于在一个浏览器会话中存储数据,因为数据在浏览器关闭后会立即删除;后者用于跨会话持久化数据并
遵循跨域安全策略。
IndexedDB 是一种类似 SQL 数据库的结构化数据存储机制。但它的数据不是保存在表中,而是保存
在对象存储空间中。创建对象存储空间时,需要定义一个键,然后就可以添加数据。可以使用游标在对
象存储空间中查询特定的对象。而索引则是为了提高查询速度而基于特定的属性创建的。
有了以上这些选择,就可以在客户端机器上使用 JavaScript 存储大量数据了。但你必须小心,不要
在客户端存储敏感数据,因为数据缓存不会加密。